{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 0,
   "metadata": {
    "colab": {},
    "colab_type": "code",
    "id": "U1VvuYAFIe6c"
   },
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import tensorflow as tf\n",
    "from tensorflow import keras\n",
    "import matplotlib.pyplot as plt"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "Q2ahc5GhIe6n"
   },
   "source": [
    "### All the parameters required for the network can be tweaked below"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 0,
   "metadata": {
    "colab": {},
    "colab_type": "code",
    "id": "GUDIDhX4Ie6o"
   },
   "outputs": [],
   "source": [
    "### Hyperparameters, change accordingly\n",
    "Channel_uses = 4\n",
    "Epochs = 2500\n",
    "Noise_variance = 1e-4\n",
    "Pert_variance = 1e-4\n",
    "Batch_size = 1024\n",
    "# init_losses_vec = np.ones(128)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "yRtqv5SCIe6r"
   },
   "source": [
    "### TX loss function \n",
    "The policy function for the transmitter is similar to that of a cross-entropy between the noisy loss feedback (l) and the J(w,$\\theta$) function value\n",
    "\n",
    "Loss = -$\\sum_{i=1}^n$($l_i$ * J($w_i$,$\\theta$))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 0,
   "metadata": {
    "colab": {},
    "colab_type": "code",
    "id": "_rajnM9xIe6r"
   },
   "outputs": [],
   "source": [
    "def tx_loss(y_true, y_pred): \n",
    "#     loss = - y_true*keras.backend.log(y_pred)\n",
    "\n",
    "    return -y_true*y_pred\n",
    "     "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "k0Q5d2B-Ie6u"
   },
   "source": [
    "### Perturbation\n",
    "\n",
    "After we get the output from the transmitter network, we then add the perturbation matrix as mentioned in the paper. We write a  function for this purpose and then make a custom layer like functionality using the `keras.layers.lambda` functionality"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 0,
   "metadata": {
    "colab": {},
    "colab_type": "code",
    "id": "-CtrC_BVIe6v"
   },
   "outputs": [],
   "source": [
    "def perturbation(d):\n",
    "    W = tf.keras.backend.random_normal(shape = (2*Channel_uses,),\n",
    "    mean=0.0,stddev=Pert_variance**0.5,dtype=None,seed=None)\n",
    "    d = ((1-Pert_variance)**0.5)*d + W\n",
    "    return d"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "uV6iehRhIe6x"
   },
   "source": [
    "###  Tx model"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 0,
   "metadata": {
    "colab": {},
    "colab_type": "code",
    "id": "VAL-LujlIe6y"
   },
   "outputs": [],
   "source": [
    "def Int_layer(y):\n",
    "    w = y[:,y.shape[-1]//2:] - y[:,:y.shape[-1]//2]\n",
    "    print(w.shape)\n",
    "    t = -keras.backend.sum(w*w)\n",
    "#     t = keras.backend.exp(-t/Pert_variance**2)/(np.pi*Pert_variance**2)**Channel_uses\n",
    "    return t"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 0,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 132
    },
    "colab_type": "code",
    "id": "bu0_LvHCIe60",
    "outputId": "87180be9-6aa3-4e14-cd7c-534439bd7737"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "WARNING:tensorflow:From /usr/local/lib/python3.6/dist-packages/tensorflow/python/ops/resource_variable_ops.py:435: colocate_with (from tensorflow.python.framework.ops) is deprecated and will be removed in a future version.\n",
      "Instructions for updating:\n",
      "Colocations handled automatically by placer.\n",
      "(?, 8)\n",
      "(?, 16)\n"
     ]
    }
   ],
   "source": [
    "# tx layers\n",
    "tx_input = keras.layers.Input((1,), name='tx_input')\n",
    "x = keras.layers.BatchNormalization()(tx_input)\n",
    "x = keras.layers.Dense(units=10*Channel_uses, activation='elu', name='tx_10')(x)\n",
    "x = keras.layers.Dense(units=2*Channel_uses, activation='elu', name='tx_out')(x)\n",
    "xp = keras.layers.Lambda(perturbation, name='Xp')(x)\n",
    "concat = keras.layers.concatenate([x,xp], axis=1)\n",
    "policy = keras.layers.Lambda(Int_layer)(concat)\n",
    "print(concat.shape)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "CuMzNvRbIe62"
   },
   "source": [
    "We define the entire graph but for simplicity sake, we also define a sub-model for getting the internediate layer outputs.\n",
    "\n",
    "To be even more precise, we add perturbation after we get the Tx layer output. So, to get the perturbation matrix out, we define a full model and another proxy model (which shares weights with the full model) which return without perturbation matrix effects.\n",
    "\n",
    "We then subtract these two layers to get the value of W (perturbation matrix) for a given batch/sample\n",
    "\n",
    "(Note that we had to take this roundabout method to get W because Keras can't return two tensors for a said layer)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 0,
   "metadata": {
    "colab": {},
    "colab_type": "code",
    "id": "i-1pACOyIe63"
   },
   "outputs": [],
   "source": [
    "tx_model = keras.models.Model(inputs=tx_input, outputs=concat)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 0,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 397
    },
    "colab_type": "code",
    "id": "su8nzEbBIe67",
    "outputId": "ccc6affb-97ac-4c05-e892-d8022e864ead"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "__________________________________________________________________________________________________\n",
      "Layer (type)                    Output Shape         Param #     Connected to                     \n",
      "==================================================================================================\n",
      "tx_input (InputLayer)           (None, 1)            0                                            \n",
      "__________________________________________________________________________________________________\n",
      "batch_normalization_v1 (BatchNo (None, 1)            4           tx_input[0][0]                   \n",
      "__________________________________________________________________________________________________\n",
      "tx_10 (Dense)                   (None, 40)           80          batch_normalization_v1[0][0]     \n",
      "__________________________________________________________________________________________________\n",
      "tx_out (Dense)                  (None, 8)            328         tx_10[0][0]                      \n",
      "__________________________________________________________________________________________________\n",
      "Xp (Lambda)                     (None, 8)            0           tx_out[0][0]                     \n",
      "__________________________________________________________________________________________________\n",
      "concatenate (Concatenate)       (None, 16)           0           tx_out[0][0]                     \n",
      "                                                                 Xp[0][0]                         \n",
      "==================================================================================================\n",
      "Total params: 412\n",
      "Trainable params: 410\n",
      "Non-trainable params: 2\n",
      "__________________________________________________________________________________________________\n"
     ]
    }
   ],
   "source": [
    "tx_model.summary()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 0,
   "metadata": {
    "colab": {},
    "colab_type": "code",
    "id": "0aVC8d9RIe6_"
   },
   "outputs": [],
   "source": [
    "pert_model = keras.models.Model(inputs=tx_input, outputs=policy)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 0,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 435
    },
    "colab_type": "code",
    "id": "WGQSrJH6Ie7B",
    "outputId": "4891e66b-550a-4870-e2cd-1898122e8199"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "__________________________________________________________________________________________________\n",
      "Layer (type)                    Output Shape         Param #     Connected to                     \n",
      "==================================================================================================\n",
      "tx_input (InputLayer)           (None, 1)            0                                            \n",
      "__________________________________________________________________________________________________\n",
      "batch_normalization_v1 (BatchNo (None, 1)            4           tx_input[0][0]                   \n",
      "__________________________________________________________________________________________________\n",
      "tx_10 (Dense)                   (None, 40)           80          batch_normalization_v1[0][0]     \n",
      "__________________________________________________________________________________________________\n",
      "tx_out (Dense)                  (None, 8)            328         tx_10[0][0]                      \n",
      "__________________________________________________________________________________________________\n",
      "Xp (Lambda)                     (None, 8)            0           tx_out[0][0]                     \n",
      "__________________________________________________________________________________________________\n",
      "concatenate (Concatenate)       (None, 16)           0           tx_out[0][0]                     \n",
      "                                                                 Xp[0][0]                         \n",
      "__________________________________________________________________________________________________\n",
      "lambda (Lambda)                 ()                   0           concatenate[0][0]                \n",
      "==================================================================================================\n",
      "Total params: 412\n",
      "Trainable params: 410\n",
      "Non-trainable params: 2\n",
      "__________________________________________________________________________________________________\n"
     ]
    }
   ],
   "source": [
    "pert_model.compile(loss=tx_loss, optimizer='sgd')\n",
    "pert_model.summary()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "R8Nwp3t8Ie7E"
   },
   "source": [
    "### Rx model\n",
    "\n",
    "In the said RX model, we are taking the Perturbed input, adding channel effects and then passing on for estimation. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 0,
   "metadata": {
    "colab": {},
    "colab_type": "code",
    "id": "8zflQdUdIe7E"
   },
   "outputs": [],
   "source": [
    "rx_input = keras.layers.Input((2*Channel_uses,), name='rx_input')\n",
    "# channel layer\n",
    "y = keras.layers.Lambda(lambda x: x+keras.backend.random_normal(\n",
    "        shape = (2*Channel_uses,), mean=0.0, stddev=Noise_variance**0.5), name='channel')(rx_input)\n",
    "\n",
    "y = keras.layers.Dense(2*Channel_uses, activation='relu', name='rx_2')(y)\n",
    "y = keras.layers.Dense(10*Channel_uses, activation='relu', name='rx_10')(y)\n",
    "pred = keras.layers.Dense(1, activation='relu', name='rx_output')(y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 0,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 340
    },
    "colab_type": "code",
    "id": "Sg6jt5T2Ie7H",
    "outputId": "23720d47-7efe-4c1d-fbf0-cf437f5db7c5"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "_________________________________________________________________\n",
      "Layer (type)                 Output Shape              Param #   \n",
      "=================================================================\n",
      "rx_input (InputLayer)        (None, 8)                 0         \n",
      "_________________________________________________________________\n",
      "channel (Lambda)             (None, 8)                 0         \n",
      "_________________________________________________________________\n",
      "rx_2 (Dense)                 (None, 8)                 72        \n",
      "_________________________________________________________________\n",
      "rx_10 (Dense)                (None, 40)                360       \n",
      "_________________________________________________________________\n",
      "rx_output (Dense)            (None, 1)                 41        \n",
      "=================================================================\n",
      "Total params: 473\n",
      "Trainable params: 473\n",
      "Non-trainable params: 0\n",
      "_________________________________________________________________\n"
     ]
    }
   ],
   "source": [
    "rx_model = keras.models.Model(inputs=rx_input, outputs=pred)\n",
    "rx_model.summary()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 0,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 94
    },
    "colab_type": "code",
    "id": "0vfLBVRrIe7J",
    "outputId": "c0f745ec-ad58-49eb-a53e-ce94436bfbdd"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "WARNING:tensorflow:From /usr/local/lib/python3.6/dist-packages/tensorflow/python/keras/utils/losses_utils.py:170: to_float (from tensorflow.python.ops.math_ops) is deprecated and will be removed in a future version.\n",
      "Instructions for updating:\n",
      "Use tf.cast instead.\n"
     ]
    }
   ],
   "source": [
    "rx_model.compile(loss='mse', optimizer='sgd')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 0,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 55
    },
    "colab_type": "code",
    "id": "wB9cUKzoIe7L",
    "outputId": "cdc536fb-5e9f-43b9-aa0b-a7059c0cce86"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(1024, 16)\n",
      "(1024,) (1024,)\n"
     ]
    }
   ],
   "source": [
    "data_numbers = np.random.uniform(0,1,(Batch_size,))\n",
    "y = tx_model.predict(data_numbers)\n",
    "print(y.shape)\n",
    "XP = y[:,y.shape[-1]//2:]\n",
    "estimated_vector  = np.squeeze(rx_model.predict(XP))\n",
    "print(estimated_vector.shape, data_numbers.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 0,
   "metadata": {
    "colab": {},
    "colab_type": "code",
    "id": "Rik5r06aIe7O"
   },
   "outputs": [],
   "source": [
    "l = (estimated_vector-data_numbers)**2\n",
    "l_hat = rx_model.predict(tx_model.predict(data_numbers)[:,2*Channel_uses:])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 0,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 132
    },
    "colab_type": "code",
    "id": "U0lgWzrDIe7Q",
    "outputId": "104d9df2-8388-4503-e9b5-1694ffc926fd"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "WARNING:tensorflow:From /usr/local/lib/python3.6/dist-packages/tensorflow/python/ops/math_ops.py:3066: to_int32 (from tensorflow.python.ops.math_ops) is deprecated and will be removed in a future version.\n",
      "Instructions for updating:\n",
      "Use tf.cast instead.\n",
      "1024/1024 [==============================] - 0s 190us/sample - loss: 0.0217\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<tensorflow.python.keras.callbacks.History at 0x7f2c434b1d30>"
      ]
     },
     "execution_count": 16,
     "metadata": {
      "tags": []
     },
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pert_model.fit(data_numbers, l_hat, batch_size=Batch_size, epochs=1)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "zMFWoKcpIe7U"
   },
   "source": [
    "### Training\n",
    "\n",
    "Training this entire network is done as discussed in the paper -\n",
    "1. Generate a batch of numbers sampled from Uniform random variable from [0,1]\n",
    "2. Pass the numbers through Tx and then Rx\n",
    "3. Get a loss vectors for the said batch of numbers\n",
    "4. Train the Rx network on MSE with SGD\n",
    "5. Feed back the loss vector to Tx using the same pair of Tx and Rx to incorporate noise into the loss vector\n",
    "6. Use policy function, the loss vector and train the Tx for the same batch of numbers\n",
    "7. Back to step 1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 47517
    },
    "colab_type": "code",
    "id": "W699EvJ4Ie7U",
    "outputId": "4cc238bd-9434-4d0a-e700-5c0b7d64d97d",
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "1024/1024 [==============================] - 0s 133us/sample - loss: 0.2694\n",
      "1024/1024 [==============================] - 0s 4us/sample - loss: 0.2464\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.2309\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.2141\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.2059\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.2093\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.1776\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.1587\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.1500\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.1400\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.1429\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.1265\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.1253\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.1131\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.1034\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0957\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0948\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0854\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0932\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0772\n",
      "1024/1024 [==============================] - 0s 5us/sample - loss: 0.0815\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0745\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0664\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0633\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0649\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0582\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0597\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0555\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0549\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0485\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0517\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0496\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0427\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0440\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0431\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0418\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0397\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0380\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0363\n",
      "1024/1024 [==============================] - 0s 5us/sample - loss: 0.0378\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0354\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0385\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0354\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0303\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0318\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0294\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0284\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0302\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0298\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0268\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0268\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0266\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0271\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0258\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0258\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0254\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0243\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0227\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0224\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0237\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0216\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0219\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0211\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0208\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0204\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0189\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0215\n",
      "1024/1024 [==============================] - 0s 4us/sample - loss: 0.0184\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0180\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0169\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0180\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0185\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0180\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0171\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0175\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0175\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0154\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0162\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0152\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0164\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0148\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0141\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0163\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0145\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0139\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0133\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0148\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0153\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0127\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0135\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0124\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0128\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0124\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0126\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0112\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0115\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0111\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0109\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0122\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0105\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0111\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0112\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0092\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0106\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0100\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0104\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0093\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0101\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0090\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0090\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0081\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0086\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0090\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0087\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0090\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0085\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0093\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0080\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0082\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0085\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0074\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0082\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0079\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0068\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0081\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0085\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0074\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0064\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0072\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0064\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0064\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0067\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0067\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0072\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0069\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0076\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0054\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0049\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0058\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0063\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0067\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0065\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0063\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0067\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0063\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0061\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0056\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0058\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0051\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0057\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0045\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0055\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0058\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0044\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0048\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0055\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0058\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0047\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0048\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0048\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0048\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0047\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0058\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0057\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0037\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0048\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0047\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0051\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0047\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0046\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0048\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0055\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0044\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0043\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0045\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0052\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0055\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0050\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0048\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0047\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0047\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0044\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0043\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0047\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0041\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0046\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0048\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0043\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0051\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0053\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0047\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0041\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0047\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0043\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0044\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0042\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0038\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0041\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0045\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0048\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0047\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0047\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0049\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0044\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0041\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0044\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0039\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0044\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0043\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0041\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0044\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0045\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0047\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0040\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0046\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0046\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0042\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0046\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0048\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0048\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0044\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0043\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0043\n",
      "1024/1024 [==============================] - 0s 6us/sample - loss: 0.0046\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0042\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0047\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0049\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0047\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0046\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0045\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0045\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0050\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0049\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0044\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0049\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0050\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0046\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0048\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0047\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0047\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0048\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0043\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0053\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0049\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0049\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0047\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0051\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0049\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0049\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0051\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0049\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0048\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0047\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0044\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0052\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0051\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0044\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0048\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0044\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0049\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0048\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0050\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0050\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0050\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0051\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0052\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0049\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0046\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0050\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0052\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0047\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0051\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0050\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0052\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0049\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0045\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0052\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0049\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0053\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0048\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0062\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0048\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0045\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0050\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0053\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0052\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0050\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0052\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0052\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0053\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0049\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0050\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0051\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0052\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0050\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0049\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0054\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0054\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0050\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0056\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0055\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0054\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0053\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0049\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0050\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0052\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0052\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0053\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0053\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0048\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0051\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0054\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0052\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0052\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0058\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0053\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0054\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0052\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0052\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0053\n",
      "1024/1024 [==============================] - 0s 8us/sample - loss: 0.0050\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0052\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0053\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0053\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0050\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0058\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0051\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0053\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0055\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0048\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0049\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0051\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0054\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0053\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0049\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0055\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0052\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0051\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0053\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0051\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0052\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0052\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0049\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0051\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0048\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0060\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0049\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0049\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0052\n",
      "1024/1024 [==============================] - 0s 7us/sample - loss: 0.0052\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0054\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0050\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0049\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0050\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0052\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0052\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0050\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0051\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0046\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0046\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0051\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0048\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0051\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0054\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0050\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0051\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0050\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0048\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0048\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0044\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0047\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0045\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0049\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0048\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0048\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0047\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0048\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0047\n",
      "1024/1024 [==============================] - 0s 6us/sample - loss: 0.0043\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0044\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0048\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0046\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0048\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0050\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0051\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0050\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0047\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0045\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0045\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0048\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0047\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0044\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0045\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0044\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0051\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0044\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0046\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0046\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0046\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0047\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0049\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0043\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0046\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0044\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0043\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0041\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0043\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0046\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0045\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0044\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0043\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0042\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0045\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0043\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0045\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0043\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0046\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0045\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0045\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0042\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0045\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0042\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0048\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0044\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0043\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0047\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0042\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0043\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0043\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0041\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0042\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0039\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0042\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0043\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0042\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0041\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0042\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0039\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0042\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0043\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0041\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0042\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0041\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0039\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0040\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0044\n",
      "1024/1024 [==============================] - 0s 6us/sample - loss: 0.0040\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0044\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0040\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0038\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0040\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0039\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0037\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0042\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0040\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0042\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0037\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0043\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0038\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0043\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0038\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0039\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0039\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0037\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0038\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0038\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0038\n",
      "1024/1024 [==============================] - 0s 5us/sample - loss: 0.0035\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0037\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0039\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0037\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0038\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0036\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0039\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0040\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0040\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0038\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0037\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0035\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0038\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0037\n",
      "1024/1024 [==============================] - 0s 4us/sample - loss: 0.0035\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0036\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0036\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0038\n",
      "1024/1024 [==============================] - 0s 7us/sample - loss: 0.0036\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0035\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0040\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0036\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0033\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0035\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0037\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0034\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0035\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0038\n",
      "1024/1024 [==============================] - 0s 4us/sample - loss: 0.0034\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0033\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0035\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0037\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0036\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0033\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0035\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0035\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0034\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0039\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0037\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0031\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0036\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0034\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0034\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0033\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0035\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0032\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0032\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0032\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0031\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0036\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0035\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0035\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0030\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0031\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0031\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0032\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0032\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0030\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0033\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0035\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0031\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0034\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0033\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0033\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0034\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0028\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0032\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0032\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0033\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0030\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0029\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0031\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0031\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0032\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0027\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0030\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0030\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0029\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0029\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0032\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0031\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0031\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0028\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0031\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0029\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0029\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0028\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0028\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0028\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0027\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0027\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0028\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0029\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0030\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0030\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0027\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0026\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0027\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0028\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0028\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0028\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0026\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0027\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0029\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0026\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0028\n",
      "1024/1024 [==============================] - 0s 4us/sample - loss: 0.0028\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0028\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0028\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0028\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0029\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0026\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0029\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0027\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0026\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0026\n",
      "1024/1024 [==============================] - 0s 4us/sample - loss: 0.0028\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0024\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0028\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0026\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0027\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0024\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0024\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0027\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0027\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0026\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0026\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0027\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0024\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0026\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0025\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0026\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0027\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0025\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0025\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0026\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0024\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0026\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0026\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0024\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0022\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0028\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0022\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0026\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0027\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0024\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0021\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0027\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0025\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0025\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0024\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0023\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0023\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0025\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0025\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0027\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0024\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0024\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0024\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0025\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0024\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0023\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0024\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0024\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0023\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0022\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0021\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0025\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0024\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0024\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0021\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0022\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0023\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0023\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0023\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0023\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0024\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0024\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0022\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0022\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0020\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0024\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0023\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0023\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0023\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0022\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0022\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0022\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0022\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0022\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0022\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0020\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0021\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0022\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0024\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0021\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0021\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0022\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0021\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0023\n",
      "1024/1024 [==============================] - 0s 7us/sample - loss: 0.0019\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0020\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0021\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0020\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0021\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0020\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0022\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0021\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0021\n",
      "1024/1024 [==============================] - 0s 6us/sample - loss: 0.0022\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0022\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0019\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0020\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0023\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0022\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0020\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0019\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0021\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0019\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0020\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0019\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0020\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0020\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0021\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0021\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0020\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0018\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0019\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0022\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0019\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0021\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0018\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0020\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0018\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0022\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0020\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0020\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0018\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0020\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0019\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0019\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0017\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0018\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0019\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0018\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0021\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0018\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0018\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0019\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0019\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0018\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0020\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0018\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0018\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0018\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0020\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0019\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0019\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0020\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0018\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0019\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0019\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0018\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0018\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0017\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0018\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0019\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0018\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0017\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0019\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0016\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0018\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0020\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0016\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0017\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0018\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0018\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0017\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0019\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0018\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0018\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0018\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0018\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0019\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0018\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0017\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0019\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0017\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0019\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0018\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0017\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0017\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0017\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0016\n",
      "1024/1024 [==============================] - 0s 5us/sample - loss: 0.0018\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0018\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0017\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0017\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0018\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0019\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0017\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0017\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0017\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0017\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0017\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0017\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0017\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0017\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0018\n",
      "1024/1024 [==============================] - 0s 4us/sample - loss: 0.0016\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0019\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0016\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0017\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0016\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0016\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0016\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0017\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0017\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0016\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0016\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0015\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0016\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0016\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0015\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0017\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0016\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0016\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0017\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0017\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0016\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0017\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0014\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0017\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0015\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0016\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0016\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0016\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0015\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0015\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0014\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0015\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0015\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0015\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0015\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0015\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0016\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0016\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0016\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0015\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0015\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0014\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0017\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0016\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0014\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0016\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0016\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0015\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0015\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0016\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0015\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0016\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0016\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0015\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0014\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0014\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0015\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0016\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0015\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0014\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0016\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0013\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0013\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0014\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0014\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0017\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0015\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0014\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0015\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0015\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0014\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0013\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0015\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0014\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0014\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0015\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0014\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0015\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0015\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0014\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0014\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0015\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0015\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0014\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0014\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0014\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0014\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0013\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0014\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0013\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0014\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0015\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0013\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0014\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0015\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0013\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0014\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0014\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0014\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0014\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0014\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0013\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0015\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0014\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0013\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0012\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0014\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0013\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0013\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0014\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0013\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0013\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0013\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0013\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0013\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0013\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0013\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0013\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0016\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0013\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0014\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0013\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0012\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0012\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0013\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0013\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0012\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0013\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0013\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0013\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0013\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0013\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0013\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0013\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0013\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0013\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0013\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0013\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0013\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0012\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0012\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0013\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0012\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0013\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0012\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0012\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0012\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0011\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0012\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0013\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0013\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0013\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0013\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0013\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0012\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0013\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0012\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0013\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0013\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0014\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0012\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0013\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0013\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0014\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0013\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0012\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0012\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0012\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0012\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0012\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0012\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0011\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0012\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0012\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0012\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0012\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0013\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0012\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0012\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0011\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0011\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0012\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0011\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0013\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0011\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0011\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0012\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0012\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0013\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0011\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0012\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0012\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0012\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0013\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0012\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0013\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0012\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0011\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0012\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0011\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0012\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0012\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0012\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0012\n",
      "1024/1024 [==============================] - 0s 5us/sample - loss: 0.0012\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0011\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0013\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0013\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0011\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0012\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0012\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0011\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0012\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0011\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0011\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0010\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0012\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0012\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0011\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0011\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0011\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0011\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0011\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0011\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0011\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0012\n",
      "1024/1024 [==============================] - 0s 4us/sample - loss: 0.0011\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0010\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0012\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0011\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0011\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0012\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 9.8581e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0012\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0011\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0011\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0010\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0012\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0011\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 9.8601e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0012\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0011\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0011\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0011\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0011\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0010\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0010\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0011\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0011\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0013\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0012\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0012\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0011\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0011\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0011\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0011\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0010\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 9.5776e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0010\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0011\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0010\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0011\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0011\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0011\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0011\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0011\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0010\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0010\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 9.9788e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0011\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0010\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0011\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0011\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0012\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 9.8756e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 8.5116e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0011\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0010\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0012\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 9.9869e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0011\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 9.9042e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0011\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0011\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0011\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 9.6307e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 9.5967e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0010\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 9.9661e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 9.3929e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 9.9521e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0011\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 9.9198e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0011\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0010\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0011\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0011\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 9.2067e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 9.8470e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 9.8311e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 9.8732e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0011\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 9.7049e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0010\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0010\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 9.8184e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0010\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 9.3601e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0010\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0012\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 9.2632e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0010\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0010\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 8.9823e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0010\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 9.5767e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0011\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 9.4071e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 9.3117e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0011\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 9.4357e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0010\n",
      "1024/1024 [==============================] - 0s 8us/sample - loss: 0.0010\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 9.4539e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0010\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 8.7964e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0010\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 9.6259e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 9.3906e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 9.3187e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0011\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0011\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 9.5647e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 9.8547e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 8.9439e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 9.9702e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 8.9621e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0010\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 8.3398e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 9.9362e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 8.9991e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0011\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 9.3010e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0010\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 9.3560e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 9.5924e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 9.3567e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 8.5616e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 8.7988e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 8.6970e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 9.5871e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 8.7442e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 9.3348e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 8.6808e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 9.1204e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 9.4999e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 9.4002e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 9.4392e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 9.2467e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 9.4264e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 9.4672e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 8.3739e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 9.4413e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 9.1645e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 9.6858e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 0.0012\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 8.7739e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 9.3622e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 8.7665e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 9.5605e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 9.7373e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 9.7723e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 9.4736e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 9.3415e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 9.2830e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 8.5083e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 8.6704e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 9.9837e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 8.7444e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 9.1853e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 8.8813e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 9.3625e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 8.8032e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 8.6981e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 8.6475e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 9.0888e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 8.7466e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 9.9158e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 9.1085e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 9.8750e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 8.2225e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 9.8791e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 8.2732e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 8.7665e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 9.0264e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 8.8065e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 9.7897e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 8.1910e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 8.1303e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 8.5975e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 8.9604e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 8.9795e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 8.6947e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 8.9932e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 8.3086e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 8.3505e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 8.3541e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 9.4202e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 9.0543e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 9.1355e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 9.5528e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 8.4053e-04\n",
      "1024/1024 [==============================] - 0s 4us/sample - loss: 8.6806e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 0.0010\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 8.5498e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 9.0207e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 7.1320e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 8.2534e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 7.8434e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 8.7289e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 7.9492e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 7.7915e-04\n",
      "1024/1024 [==============================] - 0s 4us/sample - loss: 8.6346e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 9.2622e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 7.5029e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 7.6624e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 8.6463e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 9.0109e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 7.8277e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 8.4691e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 9.1647e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 8.7750e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 8.2205e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 9.0535e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 7.7119e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 8.3387e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 8.9411e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 9.6210e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 8.5748e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 8.8685e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 9.1999e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 7.9943e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 8.0951e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 8.7986e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 8.6132e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 8.2126e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 8.0014e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 8.4631e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 8.1303e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 7.1980e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 7.6296e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 7.1763e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 7.9878e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 8.1146e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 8.1870e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 8.2603e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 9.5896e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 7.9055e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 8.6476e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 7.9302e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 8.8568e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 8.2132e-04\n",
      "1024/1024 [==============================] - 0s 4us/sample - loss: 8.6539e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 8.0929e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 9.3915e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 8.7295e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 7.8026e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 7.6021e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 8.0068e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 9.2940e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 7.8924e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 7.9886e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 8.1317e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 8.0975e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 7.6396e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 7.4185e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 7.7874e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 8.0098e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 7.8635e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 8.1678e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 7.7909e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 7.9107e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 7.9674e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 7.5325e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 7.5711e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 8.3788e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 8.6238e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 8.3014e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 7.9639e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 7.9814e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 8.1777e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 9.1666e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 7.6963e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 8.4747e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 7.8704e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 7.6262e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 8.1160e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 7.4662e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 7.2080e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 7.5390e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 8.1679e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 7.9109e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 8.1594e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 7.4423e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 7.9623e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 8.2176e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 8.5956e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 7.9188e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 6.8098e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 8.1177e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 7.6716e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 8.2059e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 7.7320e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 7.3257e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 8.6519e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 7.6238e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 7.3855e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 7.5885e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 7.4626e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 8.6105e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 7.6923e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 8.0882e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 7.0229e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 6.7561e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 8.1730e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 7.1952e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 7.1762e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 7.2475e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 8.1440e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 8.4417e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 7.7907e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 7.6756e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 7.7246e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 6.9928e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 7.9056e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 7.1238e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 7.3633e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 7.0171e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 7.3486e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 7.7769e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 7.2333e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 8.6302e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 7.2824e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 8.5993e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 7.4061e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 6.8697e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 7.5937e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 7.2031e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 7.7970e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 7.9144e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 7.7405e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 7.5158e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 7.5615e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 7.0856e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 8.2631e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 6.6512e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 6.9278e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 7.7994e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 7.5567e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 7.0272e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 7.6768e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 7.6576e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 7.0255e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 8.0019e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 6.5024e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 6.6530e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 7.3006e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 7.0441e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 7.6690e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 7.0920e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 7.7131e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 7.3314e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 6.5075e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 6.7979e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 7.7519e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 6.7421e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 7.3860e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 7.6939e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 7.8636e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 7.5509e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 6.7952e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 8.0489e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 6.8868e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 7.2268e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 6.7398e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 7.1573e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 6.8032e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 6.8140e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 6.5438e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 7.4852e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 7.3411e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 8.0042e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 6.9809e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 6.5049e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 6.9246e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 7.9196e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 6.8320e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 6.0479e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 6.9358e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 6.8071e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 6.7888e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 6.5689e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 6.2638e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 6.4526e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 7.7261e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 6.5640e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 6.3826e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 6.7502e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 6.5511e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 8.1022e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 6.4703e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 6.4362e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 7.0163e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 6.1242e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 7.5107e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 6.8013e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 6.9887e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 6.3303e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 6.5937e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 6.8758e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 7.6635e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 7.2397e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 6.8470e-04\n",
      "1024/1024 [==============================] - 0s 4us/sample - loss: 6.4583e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 7.2688e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 6.5579e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 6.0340e-04\n",
      "1024/1024 [==============================] - 0s 4us/sample - loss: 6.6772e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 6.4382e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 6.5824e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 6.3413e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 6.6478e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 5.9355e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 6.4009e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 6.5423e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 6.3755e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 7.1914e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 6.5436e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 6.8742e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 7.1170e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 8.0650e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 6.7600e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 6.0830e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 6.2972e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 6.1562e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 6.2545e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 6.6088e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 7.0856e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 7.5988e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 6.3615e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 6.7433e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 5.7121e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 6.0279e-04\n",
      "1024/1024 [==============================] - 0s 4us/sample - loss: 7.0989e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 6.6492e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 6.5743e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 6.3664e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 6.2774e-04\n",
      "1024/1024 [==============================] - 0s 4us/sample - loss: 6.6010e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 5.6697e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 6.1923e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 6.2984e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 6.3202e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 6.3877e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 6.5900e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 6.9410e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 7.1178e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 6.4578e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 6.7332e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 6.4261e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 6.0055e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 6.9876e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 6.0240e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 6.8308e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 6.6979e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 6.4736e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 6.3084e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 6.1030e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 6.9161e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 6.0836e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 7.2289e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 5.9304e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 6.0709e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 6.0728e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 6.7298e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 7.3618e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 6.8601e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 6.5083e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 6.5265e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 6.4617e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 6.3157e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 6.7806e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 5.5808e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 6.3934e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 6.0733e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 6.6653e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.8035e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 6.4781e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 7.0086e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 6.3518e-04\n",
      "1024/1024 [==============================] - 0s 4us/sample - loss: 6.2667e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.6874e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 6.8712e-04\n",
      "1024/1024 [==============================] - 0s 17us/sample - loss: 5.8632e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 6.3193e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 6.0256e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 6.1376e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.8056e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 6.3449e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 6.0974e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 6.3335e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 6.5193e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 6.8032e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.8370e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.6957e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.8309e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 6.1884e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 6.5293e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 6.2651e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.7613e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 7.0367e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.8407e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.6741e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.9680e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 6.0589e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.8952e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 6.7482e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.9916e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 6.4095e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 5.4253e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.6864e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.9659e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 6.0964e-04\n",
      "1024/1024 [==============================] - 0s 5us/sample - loss: 5.5648e-04\n",
      "1024/1024 [==============================] - 0s 6us/sample - loss: 5.7637e-04\n",
      "1024/1024 [==============================] - 0s 9us/sample - loss: 6.1214e-04\n",
      "1024/1024 [==============================] - 0s 5us/sample - loss: 5.7427e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.6809e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.5708e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 6.2300e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 6.1318e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 6.3197e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 7.1908e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 5.8157e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 6.1943e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.5908e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 7.1333e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.5477e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 6.3318e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.4868e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 6.2429e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.8925e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.3864e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.5354e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 6.1916e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.1365e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.8649e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 6.0350e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 6.5320e-04\n",
      "1024/1024 [==============================] - 0s 4us/sample - loss: 6.1370e-04\n",
      "1024/1024 [==============================] - 0s 4us/sample - loss: 6.1238e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 5.5867e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.7937e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 5.4905e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 6.5427e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 6.1118e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.8009e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.8081e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.6172e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.8150e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 6.0358e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.6243e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 6.8447e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.9121e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.3574e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.6169e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.6911e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 6.3261e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 6.0394e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.2181e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.5676e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.4762e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.3153e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.2582e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.5842e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.6737e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 5.0752e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.3966e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 6.4908e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.8547e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.2735e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.3203e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 6.6879e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.8885e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 5.3648e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.1886e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.1085e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 5.4052e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 6.1431e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.3776e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.9762e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 6.4996e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 5.6187e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 5.7701e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.2034e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.3691e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.4987e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 5.1028e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.6323e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.7776e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 5.7533e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.7061e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.1313e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.8748e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.3011e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.2429e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.0308e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.3623e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 6.0675e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 6.2657e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.9364e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.7925e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.3278e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 6.0935e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 5.3214e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 5.3681e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.6679e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.3116e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.5056e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.3724e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.1451e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 5.4072e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.9100e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.1258e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.7916e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.6096e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.6830e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.8987e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.7767e-04\n",
      "1024/1024 [==============================] - 0s 4us/sample - loss: 5.5358e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.5560e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.4116e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.7936e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.9471e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.3230e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.3074e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.4086e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 5.1411e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 5.8823e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 5.5412e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.9177e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.0466e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.0346e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.4041e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.9850e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.1556e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.2913e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.9423e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.8975e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.2922e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.0539e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.6770e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.8562e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.3922e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.7751e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.0885e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.8222e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.8155e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.8296e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.7638e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.6750e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.8977e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 5.1698e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.1620e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.9246e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.1168e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.8150e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.3575e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.3629e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.7408e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 5.3622e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 6.0746e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.6699e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.8103e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.5915e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.2785e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.1200e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.3326e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.3945e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.9994e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.0913e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.1948e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.1256e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 7.2236e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.2792e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 4.8567e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.9801e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.7192e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.3410e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.9129e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.9224e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.9387e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.7230e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 4.7640e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.7451e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.9111e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.1906e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.9339e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.0898e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.0998e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.0197e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.8848e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.8721e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.5481e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 4.7313e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.1098e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.6630e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.7159e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.7037e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.1956e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.0709e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.2117e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.0938e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.7552e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.4577e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 5.4139e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.5069e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.8076e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.8146e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.4196e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.6508e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.5647e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.4750e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.6505e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.7276e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.7133e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.7668e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 4.5918e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.8903e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 5.0924e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.8549e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.4918e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.6173e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.2911e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.1149e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.8137e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.3888e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 4.7213e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.3977e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.0063e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.7412e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.2843e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 4.4492e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 5.4655e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.0602e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 5.0317e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.8897e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 6.3794e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.3016e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.6180e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.5200e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.2780e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.8809e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.5610e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.3657e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.7517e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.6700e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.4274e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.4138e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.3032e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 5.2505e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.4767e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.9377e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.5087e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.9362e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.1449e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.5350e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.2558e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.7520e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.4227e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.0516e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.7087e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.3120e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.1742e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.9522e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.6997e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.0896e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.6589e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.2047e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.9819e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.7384e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.4415e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.2664e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 4.3626e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.4647e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.1425e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.2956e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.2910e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.4136e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.6796e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 4.4185e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.8876e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.5320e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.2005e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.0494e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 4.3297e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.8686e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.5409e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 4.1115e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 4.3431e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.9521e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.4406e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 4.8307e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.8072e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.2998e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.7946e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.4921e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.3166e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.9057e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.4290e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 4.2789e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.8279e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.1994e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.9409e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 4.7797e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 5.2351e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.7968e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.5492e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.4743e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.5152e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.0394e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.9147e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.0254e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.8149e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.3218e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.3899e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.0210e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 4.2925e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.5824e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.2344e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.4088e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.1499e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 4.5784e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 4.2718e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.4156e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.0579e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 4.6088e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 5.8377e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 4.2010e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.0165e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 4.1404e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.3693e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.2352e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 4.7479e-04\n",
      "1024/1024 [==============================] - 0s 6us/sample - loss: 4.1742e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.5666e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 4.1792e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 4.4001e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.1096e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.9670e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.9937e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.0753e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.9731e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.5812e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.7422e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.8743e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.8586e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.3138e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.9569e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.7963e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.2647e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.1241e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.6512e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.5890e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.1961e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.0005e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.3369e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.8911e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.9961e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.3924e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.9529e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.4916e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.9322e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.0097e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.2078e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.1394e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.3238e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.6838e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.1960e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.9678e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.8767e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.4336e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 4.1046e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 4.4596e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.2178e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.4024e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.0803e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.7951e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.3840e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.4437e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.5485e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.8123e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 4.3699e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.2413e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.0502e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.3021e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 4.3017e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.9932e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.7779e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.3545e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.9368e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.9457e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.2667e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.3614e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 4.4060e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 4.4046e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.7116e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 4.3955e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.0774e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.7281e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.4792e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.3778e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.1794e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 4.1537e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 4.2095e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.9198e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.8049e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 4.0121e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.2965e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.9680e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.9195e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.2706e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 4.2227e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.2111e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.5833e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.4476e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.9716e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.8153e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.8032e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.4141e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.1159e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.1187e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.8848e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.6413e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.7208e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.8265e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.3186e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.8070e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.0973e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.6778e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.7718e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.7088e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.9041e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 4.0568e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.1001e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.4878e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.8477e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.7513e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.9182e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.7406e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 4.0113e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.1456e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.9294e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.5911e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.5411e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.1323e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.6447e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.7040e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.8786e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.9409e-04\n",
      "1024/1024 [==============================] - 0s 4us/sample - loss: 3.2077e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.7658e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.2454e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.8320e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.3220e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.9147e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.1056e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.4049e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.9924e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.0087e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.1933e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.4271e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.7853e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.8178e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.5528e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.7124e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.7080e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.8059e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 6.1086e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.6621e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.8797e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.9694e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.3871e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.6613e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.5805e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.9726e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.9775e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 4.2087e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 4.1938e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 4.2474e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.0400e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 4.5398e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.9089e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 4.2877e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.7228e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 4.5004e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.5605e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 4.0272e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.7031e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.9763e-04\n",
      "1024/1024 [==============================] - 0s 4us/sample - loss: 3.8818e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 4.2434e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.8634e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.7646e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 4.3857e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 4.3284e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 4.0172e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 4.1655e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.6421e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.8624e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.9163e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 4.0859e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 4.0115e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 4.0238e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.5999e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.9773e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.9346e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.9702e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.9942e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 4.0142e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.3244e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.6811e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.8718e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.6853e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 4.2030e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 4.2352e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.9065e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.7687e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.9497e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.7315e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.6242e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.7477e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.8778e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.3399e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.9852e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.6913e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.9644e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.6173e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.5418e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.7191e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.7199e-04\n",
      "1024/1024 [==============================] - 0s 4us/sample - loss: 3.7063e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.3592e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.4617e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.4909e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.8240e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.4218e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.0332e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.9303e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.7290e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.4208e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.2729e-04\n",
      "1024/1024 [==============================] - 0s 4us/sample - loss: 3.9738e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.0145e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.4521e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.5639e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.6189e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.9696e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.6377e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.6794e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.5378e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 4.2883e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.9018e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.6168e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.5475e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.6780e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.5526e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.3879e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.5523e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.1188e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.5647e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.7302e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.6752e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.0360e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.8296e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.7266e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.5010e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.8618e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.8864e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.2673e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.9184e-04\n",
      "1024/1024 [==============================] - 0s 4us/sample - loss: 4.0074e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.6378e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.7043e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 4.0467e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.8943e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.7585e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.4034e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.2694e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.0857e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.8878e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.0636e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.7553e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.7816e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.6610e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.8544e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 4.5225e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.3060e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.5916e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.8036e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.6691e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.8811e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.8804e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.8529e-04\n",
      "1024/1024 [==============================] - 0s 4us/sample - loss: 3.4532e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.3843e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.9906e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.4622e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.4567e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.4609e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.7648e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.7913e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.5027e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.4814e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.4897e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.7514e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.3568e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.6364e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.6364e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.3441e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.3986e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.9084e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.6289e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.5177e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.4488e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.5859e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 4.0919e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.5867e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.3622e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.8168e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.8396e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.4892e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.2687e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.7488e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.9196e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.4643e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.5822e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.5919e-04\n",
      "1024/1024 [==============================] - 0s 4us/sample - loss: 3.3701e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 4.2987e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.7909e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.1321e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.3610e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.3611e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.2891e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.6856e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.2789e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.4587e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.0496e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.5280e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.4339e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.5700e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.7232e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.6951e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.3307e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.7327e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.4223e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.2627e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.9340e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.2269e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.2858e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.2582e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.1744e-04\n",
      "1024/1024 [==============================] - 0s 4us/sample - loss: 3.2669e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.1943e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.4598e-04\n",
      "1024/1024 [==============================] - 0s 8us/sample - loss: 3.6984e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.3175e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.4454e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.4571e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 4.0893e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 4.1210e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.6797e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 4.9917e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.7324e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.5026e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.1756e-04\n",
      "1024/1024 [==============================] - 0s 4us/sample - loss: 3.5073e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.3247e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.4116e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 4.1891e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.7498e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.2486e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 4.0175e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.7757e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.6842e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.0784e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.1415e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 5.3043e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.5440e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 4.0645e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.5954e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.7894e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 4.6167e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.9647e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 4.4210e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.6532e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.7023e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.0503e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.7207e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.2795e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.6219e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.3621e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 4.2069e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.4681e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.3283e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.3167e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.3499e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 4.3393e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.2146e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.1254e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 4.0534e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.3841e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.7401e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.0991e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.6921e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.5616e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.3643e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.3064e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.2019e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 4.0799e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.4282e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 4.0025e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.3852e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 4.1792e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.6888e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.4055e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.3406e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.5357e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 2.9725e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.2846e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.8646e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 4.1999e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.5570e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.3535e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.8482e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.6007e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.3061e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.3048e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.5524e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.9590e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.4684e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.2763e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.4286e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.3947e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.3925e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 4.5790e-04\n",
      "1024/1024 [==============================] - 0s 7us/sample - loss: 3.0580e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.7894e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.3373e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.3838e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.3374e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.1424e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.5438e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.5254e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.0736e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.1896e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.1257e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 2.8487e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 5.9416e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 4.0031e-04\n",
      "1024/1024 [==============================] - 0s 4us/sample - loss: 4.0393e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.6698e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.2084e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.2865e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.3303e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.2593e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.4192e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.3175e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.2569e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.1495e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.6188e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.4120e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.1851e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.7344e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.1892e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.1269e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.3292e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.1126e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.4228e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.2214e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.2674e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.1727e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.4049e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.0784e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.2859e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.2324e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.0272e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.0455e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.0786e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.2395e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.3132e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.9362e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.7812e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.1559e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.0104e-04\n",
      "1024/1024 [==============================] - 0s 4us/sample - loss: 3.5690e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.5211e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.1732e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.0500e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.2374e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.7562e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 4.2904e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.3987e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.3620e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 2.9691e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.7175e-04\n",
      "1024/1024 [==============================] - 0s 4us/sample - loss: 3.0411e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.6618e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.5342e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.0657e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.0960e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.3639e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.0469e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.1626e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 2.9794e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 2.7961e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 2.9329e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 2.9284e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.2189e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.1915e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.0423e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.4380e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.1355e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.0599e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.2837e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.1533e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.2866e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 2.9127e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.4860e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.2218e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.4090e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.8028e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.6404e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.2018e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.4973e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.0937e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 2.8994e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.1580e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.0309e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.6309e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 2.9632e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.0729e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.2108e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.6602e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.2266e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.9787e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.7318e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.1561e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.4721e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.9904e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.7482e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.1099e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.4490e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.1452e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.3407e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.7475e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.9819e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 2.9333e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.0153e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.5345e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.5976e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.5438e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.3500e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 2.9763e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 2.9596e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 2.9233e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.1878e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.1850e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.4228e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.0451e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.1848e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.7591e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.2858e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.1678e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.5387e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 2.9056e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.3782e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.2486e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.1747e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.3714e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.3069e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.0144e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.0220e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.0761e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.0345e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.9179e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.1046e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.9063e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 2.9701e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 2.8072e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 2.9229e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.4968e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 2.9805e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.3178e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.5496e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 2.9953e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.4187e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.0975e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 2.7738e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.0878e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 2.9510e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 2.7666e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.8500e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 2.7228e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.0396e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.2375e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.0277e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 2.7649e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.4796e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.2037e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.0279e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 2.8063e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 2.7272e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.5742e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.4075e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.4383e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.7373e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.2447e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 2.8728e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.0407e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.5454e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 2.9467e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.0637e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.0327e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 4.1695e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.4937e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.4281e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.0775e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.8551e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 2.7235e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.5678e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 2.9577e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.4721e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.2609e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 2.9821e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.3264e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.5171e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.5227e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 2.8572e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.0401e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.1065e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.1714e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 2.8286e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.0558e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 2.8731e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.0759e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.1489e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.0391e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 2.8896e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 2.9801e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 2.8755e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 2.6250e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 2.8250e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 2.9227e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 2.9252e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 2.8521e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 2.6425e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.7050e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.3542e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 2.8508e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.6490e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 2.6258e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.4256e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.0258e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.4059e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.4627e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 2.8719e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.0947e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.2660e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.2498e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.1706e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 2.9880e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.5400e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 2.9185e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.2317e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.6829e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 2.9975e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.9598e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.0048e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 2.8207e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.4504e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.0293e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.0530e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 2.9926e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.1208e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 4.0308e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.0737e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.1808e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.4813e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.2132e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 2.7879e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.4090e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 2.9504e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.0701e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 2.7998e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.2078e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.0046e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.9342e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 2.6743e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.1004e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 2.8451e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 2.8447e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 2.8537e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.6895e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.3483e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.0589e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.4419e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.1131e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.0129e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 2.8420e-04\n",
      "1024/1024 [==============================] - 0s 2us/sample - loss: 3.4290e-04\n",
      "1024/1024 [==============================] - 0s 3us/sample - loss: 3.2920e-04\n",
      "1024/1024 [==============================] - 0s 4us/sample - loss: 3.9162e-04\n"
     ]
    }
   ],
   "source": [
    "for i in range(Epochs):\n",
    "    data_numbers = np.random.uniform(0,1,(Batch_size,))\n",
    "    y = tx_model.predict(data_numbers)\n",
    "    XP = y[:,y.shape[-1]//2:]\n",
    "    estimated_vector= np.squeeze(rx_model.predict(XP))\n",
    "    l = (estimated_vector-data_numbers)**2\n",
    "    l_hat = rx_model.predict(tx_model.predict(data_numbers)[:,2*Channel_uses:])\n",
    "    pert_model.fit(data_numbers, l_hat, batch_size=Batch_size, epochs=1, verbose=0)\n",
    "#     print(\"Tx-done\")\n",
    "    rx_model.fit(XP, data_numbers, batch_size=Batch_size, epochs=1)\n",
    "#     print(\"Rx-done\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "WWLkEPpTIe7Y"
   },
   "source": [
    "### Prediction phase\n",
    "Note that the network is predicting numbers with a quite low error margin (+- 1e-2)\n",
    "This is in case of continous numbers \n",
    "Say we feed numbers sampled from PAM (discrete numbers) and set our prediction rules as a floor or ceiling function, this model easily achieves 95% accuracy\n",
    "\n",
    "This is all achieved even though there is a noisy feedback of losses from Tx to Rx"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 93
    },
    "colab_type": "code",
    "id": "NKcUoNGJIe7Z",
    "outputId": "3205ff41-8e9c-4887-935d-fee7ab851dee"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0.43114407 0.0724069  0.71251768 0.62851457 0.3649974  0.80804718\n",
      " 0.00472749 0.22596115 0.67318013 0.64432473]\n",
      "[0.43335813 0.08210276 0.734823   0.6464252  0.34259534 0.8232196\n",
      " 0.04335603 0.20517816 0.6946332  0.6636828 ]\n"
     ]
    }
   ],
   "source": [
    "data_numbers = np.random.uniform(0,1,(10,))\n",
    "y = tx_model.predict(data_numbers)\n",
    "XP = y[:,y.shape[-1]//2:]\n",
    "estimated_vector= np.squeeze(rx_model.predict(XP))\n",
    "print(data_numbers)\n",
    "print(estimated_vector)\n",
    "# l = (estimated_vector-data_numbers)**2\n",
    "# l_hat = rx_model.predict(tx_model.predict(data_numbers)[:,2*Channel_uses:])\n",
    "# pert_model.fit(data_numbers, l_hat, batch_size=Batch_size, epochs=1)\n",
    "# print(\"Tx-done\")\n",
    "# rx_model.fit(XP, data_numbers, batch_size=Batch_size, epochs=1)\n",
    "# print(\"Rx-done\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "bqHp3kEEIe7e"
   },
   "source": [
    "### Post implimentation tid-bits\n",
    "\n",
    "Please note that we had to make some chnages from the original discussed implimentation and theory to attain some numerical stability and to dodge NaN losses\n",
    "\n",
    "1. In the J(w,$\\theta$) function, we have a part involving exp(|w|) and some constants. Where as the loss involved $L_i$ * log(J(w,$\\theta$)). This causes numerical instability in case the J function goes negative or is very very small due to exp() and then log. To prevent this, we ignored the constants (as they dont affect gradient terms while differentiating) and removed the exp() and log() terms all-together\n",
    "\n",
    "2. Author assumed two pairs of Tx-Rx with shared weights. We used one for both purposes as it is symmetric"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "4IvlRDqDRxQy"
   },
   "source": [
    "### Modulation example\n",
    "\n",
    "As we mentioned before, here is an 8 PAM example. We generate real numbers between 0 and 1 for 8 samples and pass through the network and decode accordingly and check accuracy. Since this is a fairly small example, it attains 100% accuracy"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 93
    },
    "colab_type": "code",
    "id": "TKaQT0GENza-",
    "outputId": "17b12b50-3cc5-4a7f-a281-f8a64969be41"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0.         0.14285714 0.28571429 0.42857143 0.57142857 0.71428571\n",
      " 0.85714286 1.        ]\n",
      "[0 1 2 3 4 5 6 7]\n",
      "[0.07142857142857142, 0.21428571428571427, 0.3571428571428571, 0.5, 0.6428571428571428, 0.7857142857142856, 0.9285714285714286]\n"
     ]
    }
   ],
   "source": [
    "# Generate 8-PAM data\n",
    "modulation_data = np.linspace(0,1,8)\n",
    "modulation_inds = np.linspace(0,7,8)\n",
    "print(modulation_data)\n",
    "modulation_inds = modulation_inds.astype(int)\n",
    "print(modulation_inds)\n",
    "decision_regions = []\n",
    "for i in range(len(modulation_data) -1):\n",
    "  decision_regions.append((modulation_data[i]+modulation_data[i+1])/2.0)\n",
    "\n",
    "print(decision_regions)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 112
    },
    "colab_type": "code",
    "id": "eBNm5ku3PKBg",
    "outputId": "589e3d26-859c-4f93-eb72-66d89a67b83c"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0.         0.14285714 0.28571429 0.42857143 0.57142857 0.71428571\n",
      " 0.85714286 1.        ]\n",
      "[0.05045348 0.14988288 0.27580988 0.44272137 0.5882717  0.7469301\n",
      " 0.8735622  0.97393775]\n",
      "[0 1 2 3 4 5 6 7]\n"
     ]
    }
   ],
   "source": [
    "y = tx_model.predict(modulation_data)\n",
    "XP = y[:,y.shape[-1]//2:]\n",
    "estimated_vector= np.squeeze(rx_model.predict(XP))\n",
    "print(modulation_data)\n",
    "print(estimated_vector)\n",
    "\n",
    "est_sig = []\n",
    "for i in estimated_vector:\n",
    "  index = (np.abs(modulation_data-i)).argmin()\n",
    "  est_sig.append(modulation_inds[index])\n",
    "  \n",
    "est_sig = np.array(est_sig)\n",
    "print(est_sig)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 36
    },
    "colab_type": "code",
    "id": "G652PMATQ7cy",
    "outputId": "37b2da0b-626b-4c92-a36e-c47e96c6f54a"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "1.0\n"
     ]
    }
   ],
   "source": [
    "from sklearn.metrics import accuracy_score\n",
    "\n",
    "print(accuracy_score(est_sig, modulation_inds))"
   ]
  }
 ],
 "metadata": {
  "accelerator": "GPU",
  "colab": {
   "collapsed_sections": [],
   "name": "code_colab.ipynb",
   "provenance": [],
   "version": "0.3.2"
  },
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.0"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
